home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / HyperXCmd.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  11.2 KB  |  291 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        HyperXCmd.p
  3.  
  4.      Contains:    Interfaces for HyperCard XCMD's
  5.  
  6.      Version:    Technology:    HyperCard 2.3
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1987-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT HyperXCmd;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __HYPERXCMD__}
  27. {$SETC __HYPERXCMD__ := 1}
  28.  
  29. {$I+}
  30. {$SETC HyperXCmdIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __FP__}
  37. {$I fp.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __EVENTS__}
  40. {$I Events.p}
  41. {$ENDC}
  42. {$IFC UNDEFINED __TEXTEDIT__}
  43. {$I TextEdit.p}
  44. {$ENDC}
  45. {$IFC UNDEFINED __MENUS__}
  46. {$I Menus.p}
  47. {$ENDC}
  48. {$IFC UNDEFINED __STANDARDFILE__}
  49. {$I StandardFile.p}
  50. {$ENDC}
  51.  
  52.  
  53. {$PUSH}
  54. {$ALIGN MAC68K}
  55. {$LibExport+}
  56.  
  57. { result codes }
  58.  
  59. CONST
  60.     xresSucc                    = 0;
  61.     xresFail                    = 1;
  62.     xresNotImp                    = 2;
  63.  
  64. { XCMDBlock constants for event.what... }
  65.     xOpenEvt                    = 1000;                            {  the first event after you are created  }
  66.     xCloseEvt                    = 1001;                            {  your window is being forced close (Quit?)  }
  67.     xGiveUpEditEvt                = 1002;                            {  you are losing Edit...  }
  68.     xGiveUpSoundEvt                = 1003;                            {  you are losing the sound channel...  }
  69.     xHidePalettesEvt            = 1004;                            {  someone called HideHCPalettes  }
  70.     xShowPalettesEvt            = 1005;                            {  someone called ShowHCPalettes  }
  71.     xEditUndo                    = 1100;                            {  Edit——Undo  }
  72.     xEditCut                    = 1102;                            {  Edit——Cut  }
  73.     xEditCopy                    = 1103;                            {  Edit——Copy  }
  74.     xEditPaste                    = 1104;                            {  Edit——Paste  }
  75.     xEditClear                    = 1105;                            {  Edit——Clear  }
  76.     xSendEvt                    = 1200;                            {  script has sent you a message (text)  }
  77.     xSetPropEvt                    = 1201;                            {  set a window property  }
  78.     xGetPropEvt                    = 1202;                            {  get a window property  }
  79.     xCursorWithin                = 1300;                            {  cursor is within the window  }
  80.     xMenuEvt                    = 1400;                            {  user has selected an item in your menu  }
  81.     xMBarClickedEvt                = 1401;                            {  a menu is about to be shown--update if needed  }
  82.     xShowWatchInfoEvt            = 1501;                            {  for variable and message watchers  }
  83.     xScriptErrorEvt                = 1502;                            {  place the insertion point  }
  84.     xDebugErrorEvt                = 1503;                            {  user clicked "Debug" at a complaint  }
  85.     xDebugStepEvt                = 1504;                            {  hilite the line  }
  86.     xDebugTraceEvt                = 1505;                            {  same as step but tracing  }
  87.     xDebugFinishedEvt            = 1506;                            {  script ended  }
  88.  
  89.     paletteProc                    = 2048;                            {  Windoid with grow box  }
  90.     palNoGrowProc                = 2052;                            {  standard Windoid defproc  }
  91.     palZoomProc                    = 2056;                            {  Windoid with zoom and grow  }
  92.     palZoomNoGrow                = 2060;                            {  Windoid with zoom and no grow  }
  93.  
  94.     hasZoom                        = 8;
  95.     hasTallTBar                    = 2;
  96.     toggleHilite                = 1;
  97.  
  98. { paramCount is set to these constants when first calling special XThings }
  99.     xMessageWatcherID            = -2;
  100.     xVariableWatcherID            = -3;
  101.     xScriptEditorID                = -4;
  102.     xDebuggerID                    = -5;
  103.  
  104. { XTalkObjectPtr->objectKind values }
  105.     stackObj                    = 1;
  106.     bkgndObj                    = 2;
  107.     cardObj                        = 3;
  108.     fieldObj                    = 4;
  109.     buttonObj                    = 5;
  110.  
  111. { selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
  112.     errorDlgID                    = 1;                            {  1:OK (default)  }
  113.     confirmDlgID                = 2;                            {  1:OK (default) and 2:Cancel  }
  114.     confirmDelDlgID                = 3;                            {  1:Cancel (default) and 2:Delete  }
  115.     yesNoCancelDlgID            = 4;                            {  1:Yes (default), 2:Cancel, and 3:No  }
  116.  
  117.  
  118. { type definitions }
  119.  
  120. TYPE
  121.     XCmdBlockPtr = ^XCmdBlock;
  122.     XCmdBlock = RECORD
  123.         paramCount:                INTEGER;                                {  If = -1 then new use for XWindoids  }
  124.         params:                    ARRAY [1..16] OF Handle;
  125.         returnValue:            Handle;
  126.         passFlag:                BOOLEAN;
  127.         filler1:                SignedByte;
  128.         entryPoint:                UniversalProcPtr;                        {  to call back to HyperCard  }
  129.         request:                INTEGER;
  130.         result:                    INTEGER;
  131.         inArgs:                    ARRAY [1..8] OF LONGINT;
  132.         outArgs:                ARRAY [1..4] OF LONGINT;
  133.     END;
  134.  
  135.     XCmdPtr                                = ^XCmdBlock;
  136.  
  137.     XWEventInfoPtr = ^XWEventInfo;
  138.     XWEventInfo = RECORD
  139.         event:                    EventRecord;
  140.         eventWindow:            WindowPtr;
  141.         eventParams:            ARRAY [1..9] OF LONGINT;
  142.         eventResult:            Handle;
  143.     END;
  144.  
  145.     XTalkObjectPtr = ^XTalkObject;
  146.     XTalkObject = RECORD
  147.         objectKind:                INTEGER;                                {  stack, bkgnd, card, field, or button  }
  148.         stackNum:                LONGINT;                                {  reference number of the source stack  }
  149.         bkgndID:                LONGINT;
  150.         cardID:                    LONGINT;
  151.         buttonID:                LONGINT;
  152.         fieldID:                LONGINT;
  153.     END;
  154.  
  155. { maximum number of checkpoints in a script }
  156.  
  157. CONST
  158.     maxCachedChecks                = 16;
  159.  
  160.  
  161. TYPE
  162.     CheckPtsPtr = ^CheckPts;
  163.     CheckPts = RECORD
  164.         checks:                    ARRAY [1..16] OF INTEGER;
  165.     END;
  166.  
  167.     CheckPtPtr                            = ^CheckPts;
  168.     CheckPtHandle                        = ^CheckPtPtr;
  169. {
  170.         HyperTalk Utilities  
  171. }
  172. FUNCTION EvalExpr(paramPtr: XCmdPtr; expr: Str255): Handle;
  173. PROCEDURE SendCardMessage(paramPtr: XCmdPtr; msg: Str255);
  174. PROCEDURE SendHCMessage(paramPtr: XCmdPtr; msg: Str255);
  175. PROCEDURE RunHandler(paramPtr: XCmdPtr; handler: Handle);
  176. {
  177.         Memory Utilities  
  178. }
  179. FUNCTION GetGlobal(paramPtr: XCmdPtr; globName: Str255): Handle;
  180. PROCEDURE SetGlobal(paramPtr: XCmdPtr; globName: Str255; globValue: Handle);
  181. PROCEDURE ZeroBytes(paramPtr: XCmdPtr; dstPtr: UNIV Ptr; longCount: LONGINT);
  182. {
  183.         String Utilities  
  184. }
  185. PROCEDURE ScanToReturn(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  186. PROCEDURE ScanToZero(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  187. FUNCTION StringEqual(paramPtr: XCmdPtr; str1: Str255; str2: Str255): BOOLEAN;
  188. FUNCTION StringLength(paramPtr: XCmdPtr; strPtr: UNIV Ptr): LONGINT;
  189. FUNCTION StringMatch(paramPtr: XCmdPtr; pattern: Str255; target: UNIV Ptr): Ptr;
  190. PROCEDURE ZeroTermHandle(paramPtr: XCmdPtr; hndl: Handle);
  191. {
  192.         String Conversions  
  193. }
  194. PROCEDURE BoolToStr(paramPtr: XCmdPtr; value: BOOLEAN; VAR str: Str255);
  195. PROCEDURE Double_tToStr(paramPtr: XCmdPtr; num: double_t; VAR str: Str255);
  196. PROCEDURE LongToStr(paramPtr: XCmdPtr; posNum: LONGINT; VAR str: Str255);
  197. PROCEDURE NumToHex(paramPtr: XCmdPtr; num: LONGINT; nDigits: INTEGER; VAR str: Str255);
  198. PROCEDURE NumToStr(paramPtr: XCmdPtr; num: LONGINT; VAR str: Str255);
  199. FUNCTION PasToZero(paramPtr: XCmdPtr; str: Str255): Handle;
  200. PROCEDURE PointToStr(paramPtr: XCmdPtr; pt: Point; VAR str: Str255);
  201. PROCEDURE RectToStr(paramPtr: XCmdPtr; {CONST}VAR rct: Rect; VAR str: Str255);
  202. PROCEDURE ReturnToPas(paramPtr: XCmdPtr; zeroStr: UNIV Ptr; VAR pasStr: Str255);
  203. FUNCTION StrToBool(paramPtr: XCmdPtr; str: Str255): BOOLEAN;
  204. FUNCTION StrToDouble_t(paramPtr: XCmdPtr; str: Str255): double_t;
  205. FUNCTION StrToLong(paramPtr: XCmdPtr; str: Str255): LONGINT;
  206. FUNCTION StrToNum(paramPtr: XCmdPtr; str: Str255): LONGINT;
  207. PROCEDURE StrToPoint(paramPtr: XCmdPtr; str: Str255; VAR pt: Point);
  208. PROCEDURE StrToRect(paramPtr: XCmdPtr; str: Str255; VAR rct: Rect);
  209. PROCEDURE ZeroToPas(paramPtr: XCmdPtr; zeroStr: UNIV Ptr; VAR pasStr: Str255);
  210. {
  211.         Field Utilities  
  212. }
  213. FUNCTION GetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
  214. FUNCTION GetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255): Handle;
  215. FUNCTION GetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
  216. PROCEDURE SetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
  217. PROCEDURE SetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255; fieldVal: Handle);
  218. PROCEDURE SetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
  219. FUNCTION GetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldNum: INTEGER; fieldName: Str255): TEHandle;
  220. PROCEDURE SetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldNum: INTEGER; fieldName: Str255; fieldTE: TEHandle);
  221. {
  222.         Miscellaneous Utilities  
  223. }
  224. PROCEDURE BeginXSound(paramPtr: XCmdPtr; window: WindowPtr);
  225. PROCEDURE EndXSound(paramPtr: XCmdPtr);
  226. FUNCTION GetFilePath(paramPtr: XCmdPtr; fileName: Str255; numTypes: INTEGER; typeList: ConstSFTypeListPtr; askUser: BOOLEAN; VAR fileType: OSType; VAR fullName: Str255): BOOLEAN;
  227. PROCEDURE GetXResInfo(paramPtr: XCmdPtr; VAR resFile: INTEGER; VAR resID: INTEGER; VAR rType: ResType; VAR name: Str255);
  228. PROCEDURE Notify(paramPtr: XCmdPtr);
  229. PROCEDURE SendHCEvent(paramPtr: XCmdPtr; {CONST}VAR event: EventRecord);
  230. PROCEDURE SendWindowMessage(paramPtr: XCmdPtr; windPtr: WindowPtr; windowName: Str255; msg: Str255);
  231. FUNCTION FrontDocWindow(paramPtr: XCmdPtr): WindowPtr;
  232. FUNCTION StackNameToNum(paramPtr: XCmdPtr; stackName: Str255): LONGINT;
  233. FUNCTION ShowHCAlert(paramPtr: XCmdPtr; dlgID: INTEGER; promptStr: Str255): INTEGER;
  234. FUNCTION AbortInQueue(paramPtr: XCmdPtr): BOOLEAN;
  235. PROCEDURE FlushStackFile(paramPtr: XCmdPtr);
  236. {
  237.         Creating and Disposing XWindoids  
  238. }
  239. FUNCTION NewXWindow(paramPtr: XCmdPtr; {CONST}VAR boundsRect: Rect; title: Str255; visible: BOOLEAN; procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  240. FUNCTION GetNewXWindow(paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  241. PROCEDURE CloseXWindow(paramPtr: XCmdPtr; window: WindowPtr);
  242. {
  243.         XWindoid Utilities  
  244. }
  245. PROCEDURE HideHCPalettes(paramPtr: XCmdPtr);
  246. PROCEDURE ShowHCPalettes(paramPtr: XCmdPtr);
  247. PROCEDURE RegisterXWMenu(paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
  248. PROCEDURE SetXWIdleTime(paramPtr: XCmdPtr; window: WindowPtr; interval: LONGINT);
  249. PROCEDURE XWHasInterruptCode(paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
  250. PROCEDURE XWAlwaysMoveHigh(paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
  251. PROCEDURE XWAllowReEntrancy(paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  252. {
  253.         Text Editing Utilities  
  254. }
  255. PROCEDURE BeginXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
  256. PROCEDURE EndXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
  257. FUNCTION HCWordBreakProc(paramPtr: XCmdPtr): WordBreakUPP;
  258. PROCEDURE PrintTEHandle(paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
  259. {
  260.         Script Editor support  
  261. }
  262. FUNCTION GetCheckPoints(paramPtr: XCmdPtr): CheckPtHandle;
  263. PROCEDURE SetCheckPoints(paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  264. PROCEDURE FormatScript(paramPtr: XCmdPtr; scriptHndl: Handle; VAR insertionPoint: LONGINT; quickFormat: BOOLEAN);
  265. PROCEDURE SaveXWScript(paramPtr: XCmdPtr; scriptHndl: Handle);
  266. PROCEDURE GetObjectName(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; VAR objName: Str255);
  267. PROCEDURE GetObjectScript(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; VAR scriptHndl: Handle);
  268. PROCEDURE SetObjectScript(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; scriptHndl: Handle);
  269. {
  270.         Debugging Tools support  
  271. }
  272. PROCEDURE AbortScript(paramPtr: XCmdPtr);
  273. PROCEDURE GoScript(paramPtr: XCmdPtr);
  274. PROCEDURE StepScript(paramPtr: XCmdPtr; stepInto: BOOLEAN);
  275. PROCEDURE CountHandlers(paramPtr: XCmdPtr; VAR handlerCount: INTEGER);
  276. PROCEDURE GetHandlerInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; VAR handlerName: Str255; VAR objectName: Str255; VAR varCount: INTEGER);
  277. PROCEDURE GetVarInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; VAR varName: Str255; VAR isGlobal: BOOLEAN; VAR varValue: Str255; varHndl: Handle);
  278. PROCEDURE SetVarValue(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; varHndl: Handle);
  279. FUNCTION GetStackCrawl(paramPtr: XCmdPtr): Handle;
  280. PROCEDURE TraceScript(paramPtr: XCmdPtr; traceInto: BOOLEAN);
  281. {$ALIGN RESET}
  282. {$POP}
  283.  
  284. {$SETC UsingIncludes := HyperXCmdIncludes}
  285.  
  286. {$ENDC} {__HYPERXCMD__}
  287.  
  288. {$IFC NOT UsingIncludes}
  289.  END.
  290. {$ENDC}
  291.